home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / GoldED Tools / Macro Collection / FinsGold / TeX / documentstyle.ged < prev    next >
Encoding:
Text File  |  1996-09-27  |  8.9 KB  |  292 lines

  1. /* $VER: documentstyle V 0.6 (25.05.94) Fin Schuppenhauer */
  2.  
  3. /**   Erzeugt je nach angegebenen Dokumentenstil ein Gerüst.
  4.       Es werden außerdem  die  Optionen  für  \documentstyle
  5.       erfragt  und  der  Seitenstil mit \pagestyle bestimmt.
  6.       Abhängig von den gemachten Angaben können noch weitere
  7.       Abfragen erfolgen.
  8.       Derzeit werden folgende Stile unterstützt:
  9.  
  10.          article:
  11.                      (Vorgabe) Es werden  die  Optionen  und
  12.                      der  Seitenstil  abgefragt.  Bei Bedarf
  13.                      auch die Angabe für die Kopfzeile(n).
  14.          report:     
  15.                      Abfragen wie bei article.
  16.          book:      
  17.                      Wie article. Zusätzlich wird der Befehl
  18.                      \tableofcontents eingefügt.
  19.          letter:
  20.                      Zu den üblichen Abfragen wird  außerdem
  21.                      nach  dem  Empfänger,  der  Anrede  und
  22.                      Grußformel  gefragt.   Ein   Teil   der
  23.                      Angaben   (z.B.   die  Absenderadresse)
  24.                      werden unten vordefiniert.
  25.          dletter:
  26.                      Eine  private  Abwandlung  von  letter.
  27.                      Abfragen wie bei letter. Die Stiloption
  28.                      dletter wird nicht mitgeliefert.
  29.  
  30.       Meine Anschrift:
  31.  
  32.       Fin Schuppenhauer
  33.       Braußpark 10
  34.       20537 Hamburg
  35.       (Germany)
  36.  
  37.       E-Mail: schuppenhauer@rzdspc2.informatik.uni-hamburg.de
  38.         oder: 1schuppe@rzdspc2.informatik.uni-hamburg.de
  39.  
  40.  **/
  41.  
  42. OPTIONS RESULTS                             /* enable return codes     */
  43.  
  44. if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
  45.     address 'GOLDED.1'
  46.  
  47. 'LOCK CURRENT'                              /* lock GUI, gain access   */
  48. OPTIONS FAILAT 6                            /* ignore warnings         */
  49. SIGNAL ON SYNTAX                            /* ensure clean exit       */
  50.  
  51.  
  52. /* ------------------------ INSERT YOUR CODE HERE: ------------------- */
  53.  
  54. /** Für die Verwendung der Stiloptionen letter bzw. dletter erwartet
  55.  ** dieses Skript hier ihre Anpasungen für die LaTeX-Komandos \address
  56.  ** und \signature.
  57.  ** z.B.:
  58.  **/
  59. ADRESSE = 'Fin Schuppenhauer\\Brau"spark 10\\20537 Hamburg'
  60. TELEPHONE = '(040) 219 46 51'
  61. SIGNATURE = 'Fin Schuppenhauer'
  62. ANREDE = 'Sehr geehrte'
  63. REGARDS = 'Mit freundlichen Gr"u"sen'
  64.  
  65.  
  66. 'QUERY CAT'
  67. german = (result = "deutsch")
  68.  
  69. PARSE ARG STYLE
  70. if length(STYLE) = 0 then do
  71.    /* Nach dem Seitenstil (Vorgegeben: article) fragen: */
  72.    if german then
  73.       'REQUEST TITLE="Dokumentstil bestimmen" BODY="Bitte geben Sie den gewünschten Seitenstil an:" OLD="article" STRING VAR STYLE'
  74.    else
  75.       'REQUEST TITLE="Set documentstyle" BODY="Please specify your disered document style:" OLD="article" STRING VAR STYLE'
  76. end
  77. if rc = 0 then do
  78.    /** Wenn der vorherige Requester nicht abgebrochen wurde, fügen
  79.     ** wir je nach verwendetem Stil weitere LaTeX-Befehle ein und
  80.     ** fragen noch nach dem Seitenstil:
  81.     **/
  82.    select
  83.       when STYLE="article" then do
  84.          error = 0
  85.          call SetOptions
  86.          'DOWN'
  87.          'INSERT LINE'
  88.          'TEXT STAY T="\documentstyle'OPT'{article}"'
  89.          call SetPagestyle
  90.          'DOWN'
  91.          'INSERT LINE'
  92.          'TEXT STAY T="\begin{document}"'
  93.          end
  94.       when STYLE="report" then do
  95.          error = 0
  96.          call SetOptions
  97.          'DOWN'
  98.          'INSERT LINE'
  99.          'TEXT STAY T="\documentstyle'OPT'{report}"'
  100.          call SetPagestyle
  101.          'DOWN'
  102.          'INSERT LINE'
  103.          'TEXT STAY T="\begin{document}"'
  104.          end
  105.       when STYLE="book" then do
  106.          error = 0
  107.          call SetOptions
  108.          'DOWN'
  109.          'INSERT LINE'
  110.          'TEXT STAY T="\documentstyle'OPT'{book}"'
  111.          OPT = insert('twoside', OPT, 1)
  112.          call SetPagestyle
  113.          'DOWN'
  114.          'INSERT LINE'
  115.          'TEXT STAY T="\begin{document}"'
  116.          'DOWN'
  117.          'INSERT LINE'
  118.          'TEXT STAY T="   \tableofcontents"'
  119.          end
  120.       when (STYLE="letter") | (STYLE="dletter") then do
  121.          error = 0
  122.          call SetOptions
  123.          'DOWN'
  124.          'INSERT LINE'
  125.          'TEXT STAY T="\documentstyle'OPT'{'STYLE'}"'
  126.          call SetPagestyle
  127.          'FIX VAR ADRESSE'
  128.          'DOWN'
  129.          'INSERT LINE'
  130.          'TEXT STAY T="\address{'ADRESSE'}"'
  131.          'DOWN'
  132.          'INSERT LINE'
  133.          'TEXT STAY T="\telephone{'TELEPHONE'}"'
  134.          'FIX VAR SIGNATURE'
  135.          'DOWN'
  136.          'INSERT LINE'
  137.          'TEXT STAY T="\signature{'SIGNATURE'}"'
  138.  
  139.          'DOWN'
  140.          'INSERT LINE'
  141.          if STYLE="letter" then do
  142.             'TEXT STAY T="%\makelables"'
  143.             end
  144.          else do
  145.             'TEXT STAY T="%\zeichen{ihrs}{unser}"'
  146.          end
  147.  
  148.          'DOWN'
  149.          'INSERT LINE'
  150.          'TEXT STAY T="\begin{document}"'
  151.          call SetAddressee
  152.          end
  153.       otherwise do
  154.          error = 1
  155.       end
  156.    end
  157.    if error = 0 then do
  158.       'DOWN'
  159.       'INSERT LINE'
  160.       'TEXT STAY T="\end{document}"'
  161.       if (pos('letter', STYLE) = 0) & (pos('dletter', STYLE) = 0) then do
  162.          'INSERT LINE'
  163.          'TAB'
  164.          end
  165.       else do
  166.          'UP'
  167.          'UP'
  168.          'UP'
  169.          'UP'
  170.          'UP'
  171.          'TEXT T="         "'
  172.       end
  173.    end
  174. end
  175.  
  176. /* ---------------------------- END OF YOUR CODE --------------------- */
  177.  
  178. 'UNLOCK' /* VERY important: unlock GUI */
  179. EXIT
  180.  
  181. SYNTAX:
  182.  
  183. SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
  184. 'UNLOCK'
  185. EXIT
  186.  
  187. SetOptions:
  188.    /** Fragt nach den Optionen für \documentstyle.
  189.     ** Nur wenn welche angegeben werden, werden diese auch
  190.     ** eingefügt.
  191.     **/
  192.    if german then
  193.       'REQUEST TITLE="Dokument-Optionen bestimmen" BODY="Bitte geben Sie die gewünschten Optionen an:" OLD="german,a4" STRING VAR OPT'
  194.    else
  195.       'REQUEST TITLE="Set document options" BODY="Please specify your desired options:" STRING VAR OPT'
  196.    if (rc = 0) & (length(OPT) > 0) then
  197.       OPT = '[' || OPT || ']'
  198.    RETURN
  199.  
  200. SetPagestyle:
  201.    /** Fragt nach dem Seitenstil nach und ggf. nach den Texten für
  202.     ** die Kopfzeile.
  203.     **/
  204.  
  205.    if german then
  206.       'REQUEST TITLE="Seitenstil bestimmen" BODY="Bitte bestimmen Sie den Seitenstil:" OLD="plain" STRING VAR PAGESTYLE'
  207.    else
  208.       'REQUEST TITLE="Set pagestyle" BODY="Please specify the pagestyle:" OLD="plain" STRING VAR PAGESTYLE'
  209.    
  210.    if (rc = 0) & (length(PAGESTYLE) > 0) then do
  211.       /** Ok, ein bestimmter Seitenstil ist gewünscht. **/
  212.       'DOWN'
  213.       'INSERT LINE'
  214.       'TEXT STAY T="\pagestyle{'PAGESTYLE'}"'
  215.  
  216.       /** Wenn der Autor eigene Kopfzeilen-Texte haben möchte, wird er
  217.        ** die Option myheadings angegeben haben und wir fragen ihn
  218.        ** jetzt nach dem Text dafür:
  219.        **/
  220.       if pos('myheadings', PAGESTYLE) ~= 0 then do
  221.          if german then
  222.             'REQUEST TITLE="Rechte Kopfzeile" BODY="Geben Sie den Text für die rechte Kopfzeile ein:" STRING VAR RHEAD'
  223.          else
  224.             'REQUEST TITLE="Right heading" BODY="Enter text for right heading:" STRING VAR RHEAD'
  225.  
  226.          if pos('twoside', OPT) ~= 0 then do
  227.             /** Der zu erstellende Text wird zweiseitig sein, d.h. es
  228.              ** gibt zusätzlich noch eine linke Kopfzeile:
  229.              **/
  230.             headings = 2
  231.             if german then
  232.                'REQUEST TITLE="Linke Kopfzeile" BODY="Geben Sie den Text für die linke Kopfzeile ein:" OLD="'RHEAD'" STRING VAR LHEAD'
  233.             else
  234.                'REQUEST TITLE="Left heading" BODY="Enter text for the left heading:" OLD="'RHEAD'" STRING VAR LHEAD'
  235.             'DOWN'
  236.             'INSERT LINE'
  237.             'TEXT STAY T="\markboth{'RHEAD'}{'LHEAD'}"'
  238.          end
  239.          else do
  240.             'DOWN'
  241.             'INSERT LINE'
  242.             'TEXT STAY T="\markright{'RHEAD'}"'
  243.          end
  244.       end
  245.    end
  246.    RETURN
  247.  
  248. SetAddressee:
  249.    /** Wird von (d)letter aufgerufen und fragt nach der Empfänger-
  250.     ** adresse, der Anrede und Grußformel.
  251.     **/
  252.    if german then
  253.       'REQUEST TITLE="Empfänger" BODY="Bitte Empfängeradresse eingeben (LaTeX-Stil):" STRING VAR ADDRESSEE'
  254.    else
  255.       'REQUEST TITLE="Adressee" BODY="Please enter addressee''s address (LaTeX like):" STRING VAR ADDRESSEE'
  256.    'FIX VAR ADDRESSEE'
  257.    'DOWN'
  258.    'INSERT LINE'
  259.    'TEXT STAY T="   \begin{letter}{'ADDRESSEE'}"'
  260.  
  261.    if german then
  262.       'REQUEST TITLE="Anrede bestimmen" BODY="Bitte Anrede-Text eingeben:" OLD="'ANREDE'" STRING VAR ANREDE'
  263.    else
  264.       'REQUEST TITLE="Set address" BODY="Please enter address:" OLD="'ANREDE'" STRING VAR ANREDE'
  265.    'DOWN'
  266.    'INSERT LINE'
  267.    'TEXT STAY T="      \opening{'ANREDE'}"'
  268.    'DOWN'
  269.    'INSERT LINE'
  270.  
  271.    'FIX VAR REGARDS'
  272.    if german then
  273.       'REQUEST TITLE="Grußformel bestimmen" BODY="Bitte Grußformel eingeben:" OLD="'REGARDS'" STRING VAR REGARDS'
  274.    else
  275.       'REQUEST TITLE="Set regards" BODY="Please enter your regards:" OLD="'REGARDS'" STRING VAR REGARDS'
  276.    'FIX VAR REGARDS'
  277.    'DOWN'
  278.    'INSERT LINE'
  279.    'TEXT STAY T="      \closing{'REGARDS'}"'
  280.  
  281.    'DOWN'
  282.    'INSERT LINE'
  283.    'TEXT STAY T="%     \cc{}"'
  284.    'DOWN'
  285.    'INSERT LINE'
  286.    'TEXT STAY T="%     \encl{}"'
  287.  
  288.    'DOWN'
  289.    'INSERT LINE'
  290.    'TEXT STAY T="   \end{letter}"'
  291.    RETURN
  292.